// 题目四：逻辑最小化与实现
// 设计一个组合逻辑电路，该电路的逻辑要求：当输入为 101 或 111 时输出为 1，其余情况
// 输出为 0：
// 1. 写出完整真值表与逻辑表达式；
// 2. 用 Karnaugh 图最小化表达式；
// 3. 用 Verilog 实现最小化后的逻辑。


//设第一个数是A，第二个数是B，第三个数是C
//卡诺图化简结果为A&C

`timescale 1ns/100ps

module test(
    input wire A,
    input wire B,
    input wire C,
    output wire OUT
);
    assign OUT = A&C;

endmodule

module test_tb;
    reg A;
    reg B;
    reg C;
    wire OUT;

    test test(
        .A(A),
        .B(B),
        .C(C),
        .OUT(OUT)
    );

    initial begin
        A = 0; B = 0; C = 0;
    #10 A = 0; B = 0; C = 1;
    #10 A = 0; B = 1; C = 0;
    #10 A = 0; B = 1; C = 1;
    #10 A = 1; B = 0; C = 0;
    #10 A = 1; B = 0; C = 1;
    #10 A = 1; B = 1; C = 0;
    #10 A = 1; B = 1; C = 1;
    #10 $stop;
    end

endmodule